home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-28 | 3.0 KB | 132 lines | [TEXT/R*ch] |
- /*
- File: EventCountdown.cp
-
- Copyright: © 1991-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Part of the AOCE Sample SMSAM Package. Consult the license
- which came with this software for your specific legal rights.
-
- */
-
-
-
- #ifndef __EVENTCOUNTDOWN__
- #include "EventCountdown.h"
- #endif
-
- #ifndef __UTILITIES__
- #include "Utilities.h"
- #endif
-
- /***********************************|****************************************/
-
- TEventCountdown::TEventCountdown ( ) :
- fDefaultInterval ( 0 ),
- fExpirationAt ( 0 ),
- fExpirationCount ( 0 )
- {
- }
-
- /***********************************|****************************************/
-
- TEventCountdown::TEventCountdown ( unsigned long defaultInterval ) :
- fDefaultInterval ( defaultInterval ),
- fExpirationCount ( 0 )
- {
- fExpirationAt = NowDateTime() + fDefaultInterval ;
- }
-
- /***********************************|****************************************/
-
- TEventCountdown::~TEventCountdown ( )
- {
- }
-
- /***********************************|****************************************/
-
- Boolean TEventCountdown::ExpiredYet ( ) const
- {
- Boolean result = ( fExpirationAt && ( fExpirationAt <= NowDateTime () ) );
- return result;
- }
-
- /***********************************|****************************************/
-
- Boolean TEventCountdown::ResetTimer ( )
- {
- if ( ExpiredYet () )
- fExpirationCount ++;
-
- if ( fDefaultInterval )
- fExpirationAt = NowDateTime() + fDefaultInterval;
- else
- fExpirationAt = 0;
-
- return ( fExpirationAt > 0 );
- }
-
- /***********************************|****************************************/
-
- Boolean TEventCountdown::ResetTimer ( unsigned long interval )
- {
- if ( ExpiredYet () )
- fExpirationCount ++;
-
- if ( interval )
- fExpirationAt = NowDateTime() + interval;
- else
- fExpirationAt = 0;
-
- return ( fExpirationAt > 0 );
- }
-
- /***********************************|****************************************/
-
- Boolean TEventCountdown::SetExpiration ( unsigned long expirationAt )
- {
- if ( ExpiredYet () )
- fExpirationCount ++;
-
- fExpirationAt = expirationAt;
- return ( fExpirationAt > 0 );
- }
-
- /***********************************|****************************************/
-
- unsigned long TEventCountdown::ExpirationCount ( ) const
- {
- return fExpirationCount;
- }
-
- /***********************************|****************************************/
-
- ostream& TEventCountdown::operator << ( ostream& s )
- {
- s << "[EventCountdown::";
-
- if ( fExpirationAt )
- if ( fExpirationAt < NowDateTime () )
- s << "Expired ";
- else
- { unsigned long duration = fExpirationAt - NowDateTime ();
-
- if ( duration < 60 )
- s << "Expire in " << duration << " secs ";
- else if ( duration < 3600 )
- s << "Expire in " << duration / 60 << " min, " << ( duration % 60 ) << " secs.";
- else
- { DateTimeRec d;
- Secs2Date ( fExpirationAt, & d );
- s << "Expire @ " << d.month << "/" << d.day << "/" << d.year % 100 << " " << d.hour << " " << d.minute ;
- }
- }
- else
- s << "Disabled. ";
-
- s << " n:" << fExpirationCount << "] ";
- return s;
- }
-
- /***********************************|****************************************/
-